package com.jlu.tutorialspringbootoauth.config;

import com.jlu.tutorialspringbootoauth.interceptors.JWTInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @Author: jie lu
 * @Data: 2021/10/6
 * @Version: 1.0
 * @Description: springMvc
 **/

/**
 * springMvc
 * WebMvcConfigurer配置类其实是Spring内部的一种配置方式，采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制。
 * 可以自定义一些Handler，Interceptor，ViewResolver，MessageConverter。
 * 基于java-based方式的spring mvc配置，需要创建一个配置类并实现WebMvcConfigurer 接口；
 *
 *  addInterceptors：拦截器
 *
 *  addViewControllers：页面跳转
 *
 *  addResourceHandlers：静态资源
 *
 *  configureDefaultServletHandling：默认静态资源处理器
 *
 *  configureViewResolvers：视图解析器
 *
 *  configureContentNegotiation：配置内容裁决的一些参数
 *
 *  addCorsMappings：跨域
 *
 *  configureMessageConverters：信息转换器
 */
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new JWTInterceptor())
                .addPathPatterns("/user/**")
                //不需要拦截的路径
                .excludePathPatterns("/user/login")
        ;
    }
}